package com.bindatax.core.task.row;

import com.bindatax.core.model.ValueMetaData;


/**
 * 值数据
 * 注意，属于内容可变的对象，生命周期仅限于当前事件内。作用是传递数据容器。
 */
public class EventValueData {
    private int rowNo;//所在行号
    private ValueMetaData metaData;//属性数据，如果被改变，那会同步到属性。
    private Object value;//值。如果被改变，那会同步到原值。
    private boolean state;//是否有效

    public EventValueData(){
        clear();
    }

    public void addValue(int rowNo,ValueMetaData metaData,Object value){
        update(rowNo, metaData, value,true);
    }
    public void clear(){
        update( -1, null, null,false);
    }

    private void update(int rowNo,ValueMetaData metaData,Object value,boolean state){
        this.rowNo = rowNo;
        this.metaData = metaData;
        this.value = value;
        this.state = state;
    }

    public int getRowNo() {
        return rowNo;
    }

    public void setRowNo(int rowNo) {
        this.rowNo = rowNo;
    }

    public ValueMetaData getMetaData() {
        return metaData;
    }

    public void setMetaData(ValueMetaData metaData) {
        this.metaData = metaData;
    }

    public Object getValue() {
        return value;
    }

    public void setValue(Object value) {
        this.value = value;
    }

    public boolean isState() {
        return state;
    }

    public void setState(boolean state) {
        this.state = state;
    }
}
